package modelo;

public class Vaca {
	
	public int lecheVaca;
	
	public int grasasVaca;

	public int lecheBEVaca;
	
	public int alimentoVaca;
	
	int pesoVivoInicial;
	int pesoVivoActual;
	int diasDeLactancia;
	int edad;//edad en meses
	int nroLactancias; //en general 1 lactancia por anio a partir de los 24meses?
	int vidaProductivaEsperada; //para comparar esperado con lo real
	String id;
	EtapaDeProduccion etapa;
	ProduccionDiaria produccionReciente;
	
	public static enum EtapaDeProduccion{
		//La lactancia de la vaca lechera comienza el día que nace el ternero y continúa durante 305 días en promedio
		INICIO_LACTANCIA, 
		LACTANCIA_MEDIA,
		LACTANCIA_TARDIA,
		SECA
	}
	
	private static final int VIDA_PROD_DEFAULT=7;
	
	/** POSIBLES REGLAS DE NEGOCIO
	-si mesDeLactancia> 3 -> pesoActual==pesoVivo puede ser una alerta de salud
	-Número de lactancias==0 requiere mayor nivel nutricional para completar su crecimiento (vaca chica y sin experiencia)
	Si se ingresa una vaca que cumple lo anterior, podriamos descartarla.
	-nroDeLactancias<vidaProductiva puede servir para hacer una estadistica de la vida productiva del ganado utilizando nuestro sistema de alimentacion
	*/
	
	public Vaca(String id, int peso, int nroLactancias, int edad){
		this.id=id;
		this.pesoVivoInicial= peso;
		this.pesoVivoActual= peso;
		this.etapa= EtapaDeProduccion.SECA;
		this.nroLactancias=nroLactancias;
		this.edad=edad;
		this.vidaProductivaEsperada= VIDA_PROD_DEFAULT;
		this.produccionReciente = new ProduccionDiaria();
		
		this.lecheBEVaca = 0;
		this.lecheVaca = 0;
		this.grasasVaca = 0;
		this.alimentoVaca = 0;
	}

	public ProduccionDiaria getProduccionReciente() {
		return produccionReciente;
	}

	public void setProduccionReciente(ProduccionDiaria produccionReciente) {
		this.produccionReciente = produccionReciente;
	}

	public int getPesoVivoActual() {
		return pesoVivoActual;
	}
	
	public int getPesoVivoInicial() {
		return pesoVivoInicial;
	}

	public EtapaDeProduccion getEtapa() {
		return etapa;
	}

	public void setEtapa(EtapaDeProduccion etapa) {
		this.etapa = etapa;
	}

	public int getEdad() {
		return edad;
	}

	public void setEdad(int edad) {
		this.edad = edad;
	}

	public int getNroLactancias() {
		return nroLactancias;
	}

	public void setNroLactancias(int nroLactancias) {
		this.nroLactancias = nroLactancias;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public void setPesoVivoActual(int pesoVivoActual) {
		this.pesoVivoActual = pesoVivoActual;
	}

	public int getDiasDeLactancia() {
		return diasDeLactancia;
	}

	public void setDiasDeLactancia(int diasDeLactancia) {
		this.diasDeLactancia = diasDeLactancia;
	}

	
	
	
}
